The present invention generally relates to data transmission through a network, and more particularly, to LANs (Local Area Networks) using hubs (or repeaters) to transmit data frames among the hubs and terminals connected to the LANs.
In a typical LAN segment, terminals can be interconnected at the physical layer level with each other via hubs (or repeaters). A hub has a plurality of ports for connecting terminals or other hubs. Each of the terminals or hubs has a unique address assigned to it.
Prior to be transmitted over a LAN, a data stream is divided into a plurality of data frames. A data frame contains several fields, including: destination address field, source address field, data field, and Cyclic Redundancy Checksum (CRC). Each of the fields contains one or more bytes, and a byte contains eight bits.
In compliance with LAN physical layer protocols (e.g.: 802.3 CSMA-CD, 802.5 Token Ring, . . . ), a hub must repeat a data frame received to all other terminals or other hubs connected to the LAN segment, in the same bit length as it has been originally received.
Even though the received data frame is repeated to all other terminals connected to the LAN segment, only the terminal with an address matching the destination address of the data frame should act upon and accept the data frame.
Under some situations, it is desirable for a hub to alter (or "jam") the data field of a data frame received before repeating the data frame. For example, the data field of a data frame received can be jammed to "1010101010101010 . . . ", regardless of its original content.
One such situation is called "intrusion," where a port of a hub is exclusively authorized to connect to a specific terminal, but another terminal is "illegally" connected to that port. Upon detecting that a data frame received is sent from the "illegal" terminal, the hub jams the data frame before repeating it to other terminals or hubs, preventing the "illegal" terminal from intruding the LAN.
Another such situation is called "eavesdropping," where a terminal is configured to act upon and accept all data frames repeated to it, even when the data frames' destination addresses do not match the address assigned to the terminal. To avoid "eavesdropping," a hub jams all data frames received before repeating them to all terminals other than the destined terminal.
Still another such situation is called "configuration learning," where LAN administrator tries to learn hub configuration by transmitting "path learning" frames among hubs that are connected to a LAN segment. A "path learning" frame has a unique destination address (which will not be assigned to any terminals connected to the LAN segment), and a unique data field pattern. From the combination of the unique destination address and data fields, a "learning hub", which receives a "path learning" frame from a specific one of its ports, realizes that the incoming data frame is a "path learning" frame. Based on the source address in the "path learning" frame, the "learning hub" learns that the specific port directly connects to an adjacent hub having the source address contained in the "path learning" frame. Before relaying the "path learning" frame to the next hub, however, the "learning hub" needs to jam the "path learning" frame, so that the next hub will not mis-learn that the hub having the source address contained in the "path learning" frame is directly connected to one of its ports.
Even though data frame jamming is desirable in some situations, it can cause CRC errors at terminals or hubs that receive the jammed data frames. This is so because the CRC of a data frame is first generated at the originating station (terminal or hub) based on bit pattern in the data frame as originally sent. Then the CRC for the data frame is re-generated at a receiving terminal or receiving hub based on bit pattern that has been altered. As a result, the re-generated CRC at the receiving terminal or receiving hub is not the same with the CRC at the repeating hub.
Such unintended CRC errors will cause disruptions to network administrations, and, even worse, cause customer panics and dissatisfactions.
Therefore, there is a need to provide a method and an apparatus to alter the contents of data fields in data frames, if needed, without causing CRC errors.